#ifndef LINUX_STRING_H
#define LINUX_STRING_H

#include <types.h>
#include <stdarg.h>

void kernel_strcpy(char *dst, const char *src);

void kernel_strncpy(char *dst, const char *src, uint32_t size);

int kernel_strncmp(const char *str1, const char *str2, uint32_t size);

uint32_t kernel_strlen(const char *str);

void kernel_memcpy(void *dst, void *src, uint32_t size);

void kernel_memset(void *dst, uint8_t value, uint32_t size);

int kernel_memcmp(void *v1, void *v2, uint32_t size);

void kernel_sprintf(char *buffer, const char *fmt, ...);

void kernel_itoa(char *buf, int num, int base);

void kernel_vsprintf(char *buffer, const char *fmt, va_list args);

void panic (const char *file, int line, const char *func, const char *cond);

int strings_count(char **start);

char *get_file_name(const char *name);
#endif